Web App Performance Installation Instructions

This DEX Pack requires SysTrack version 11.4 or higher.

Notes

  • After this DEX Pack is installed, it may take up to 24 hours for data to appear.

  • If you update or reinstall this DEX Pack, you must reassign any Views created below to the relevant role.

  • Web Apps need to be defined in Configure>Web Apps

Import Kit

To use this DEX Pack, the corresponding Kit must be imported to SysTrack.

If you have already imported the DEX Pack directly from the Kits page, the Import Kit step is complete. You may move on to the next step.

If you are viewing this DEX Pack in the Customer Gateway, follow these steps to import this DEX Pack Kit:

  1. On the DEX Pack page, download the DEX Pack ZIP file.

  2. In SysTrack, open Kits.

  3. Under Local, click Select Kit File.

  4. Select the DEX Pack ZIP File.

Web Browser View

The Web App Performance Dashboard requires you to make a Views. The first is for SF_WEBAPPDAILY.

  1. Navigate to Configure > Views.

  2. Click the padlock icon in the upper-right to enable editing.

  3. Click the plus icon to add a new View.

  4. Fill in the Settings as follows:

    1. View Name: SF_WEBAPPDAILY.

    2. Existing Category: Web.

    3. Expires in: 30 Days.

    4. When Expired: Append Data.

    5. Do NOT check “When overdue by 1 day (s)”.

    6. Set the Refresh drop-downs to Daily, Inside, 24x7, and “Every Day”.

    7. Copy this SQL query, and paste it into the box under SQL Selection > Generic.

    8. Click Test SQL. A Test Success message should appear. If the test is not successful, the query may have been copied incorrectly.

  5. Click Create View at the top right.

To assign the new View:

  1. Navigate to Configure > Roles.

  2. Use the drop-down at the top to select any previously created role.

  3. Click Views, the check the box next to SF_WEBAPPDAILY.

  4. Click Save Changes at the top right.

After this View is assigned, Screen Time data will be collected each day. It will take 30 days before the data in this Dashboard is fully populated.

SF_WEBAPPDAILY SQL Query

Copy
SELECT
    T0.WGUID,
    GETUTCDATE() AS VWTIME,
    S1.WEB_APP_NAME,
    DATEADD(D, DATEDIFF(D, 0, FIRST_USE), 0) AS DOTY,
    AVG(CASE WHEN NULLIF(LOADEND,0) > NULLIF(NAVSTART,0) THEN NULLIF(LOADEND,0) - NULLIF(NAVSTART,0) END) / 1000.0 AS AVG_CLICKTORENDER,
    AVG(CASE WHEN NULLIF(RESPONSEEND,0) > NULLIF(REQUESTSTART,0) THEN NULLIF(RESPONSEEND,0) - NULLIF(REQUESTSTART,0) END) / 1000.0 AS AVG_LATENCY,
    AVG(CASE WHEN NULLIF(LOADEND,0) > NULLIF(DOMLOADING,0) THEN NULLIF(LOADEND,0) - NULLIF(DOMLOADING,0) END) / 1000.0 AS AVG_PROCESSING,
    AVG(CASE WHEN NULLIF(FETCHSTART,0) > NULLIF(NAVSTART,0) THEN NULLIF(FETCHSTART,0) - NULLIF(NAVSTART,0) END) / 1000.0 AS AVG_CLIENTPRE,
    AVG(CASE WHEN NULLIF(REQUESTSTART,0) > NULLIF(FETCHSTART,0) THEN NULLIF(REQUESTSTART,0) - NULLIF(FETCHSTART,0) END) / 1000.0 AS AVG_NETWORKSEND,
    AVG(CASE WHEN NULLIF(RESPONSESTART,0) > NULLIF(REQUESTSTART,0) THEN NULLIF(RESPONSESTART,0) - NULLIF(REQUESTSTART,0) END) / 1000.0 AS AVG_SERVER,
    AVG(CASE WHEN NULLIF(RESPONSEEND,0) > NULLIF(RESPONSESTART,0) THEN NULLIF(RESPONSEEND,0) - NULLIF(RESPONSESTART,0) END) / 1000.0 AS AVG_NETWORKREC,
    AVG(CASE WHEN NULLIF(LOADEND,0) > NULLIF(RESPONSEEND,0) THEN NULLIF(LOADEND,0) - NULLIF(RESPONSEEND,0) END) / 1000.0 AS AVG_CLIENTPOST,
    MAX(CASE WHEN NULLIF(LOADEND,0) > NULLIF(NAVSTART,0) THEN NULLIF(LOADEND,0) - NULLIF(NAVSTART,0) END) / 1000.0 AS MAX_CLICKTORENDER,
    MAX(CASE WHEN NULLIF(RESPONSEEND,0) > NULLIF(REQUESTSTART,0) THEN NULLIF(RESPONSEEND,0) - NULLIF(REQUESTSTART,0) END) / 1000.0 AS MAX_LATENCY,
    MAX(CASE WHEN NULLIF(LOADEND,0) > NULLIF(DOMLOADING,0) THEN NULLIF(LOADEND,0) - NULLIF(DOMLOADING,0) END) / 1000.0 AS MAX_PROCESSING,
    MAX(CASE WHEN NULLIF(FETCHSTART,0) > NULLIF(NAVSTART,0) THEN NULLIF(FETCHSTART,0) - NULLIF(NAVSTART,0) END) / 1000.0 AS MAX_CLIENTPRE,
    MAX(CASE WHEN NULLIF(REQUESTSTART,0) > NULLIF(FETCHSTART,0) THEN NULLIF(REQUESTSTART,0) - NULLIF(FETCHSTART,0) END) / 1000.0 AS MAX_NETWORKSEND,
    MAX(CASE WHEN NULLIF(RESPONSESTART,0) > NULLIF(REQUESTSTART,0) THEN NULLIF(RESPONSESTART,0) - NULLIF(REQUESTSTART,0) END) / 1000.0 AS MAX_SERVER,
    MAX(CASE WHEN NULLIF(RESPONSEEND,0) > NULLIF(RESPONSESTART,0) THEN NULLIF(RESPONSEEND,0) - NULLIF(RESPONSESTART,0) END) / 1000.0 AS MAX_NETWORKREC,
    MAX(CASE WHEN NULLIF(LOADEND,0) > NULLIF(RESPONSEEND,0) THEN NULLIF(LOADEND,0) - NULLIF(RESPONSEEND,0) END) / 1000.0 AS MAX_CLIENTPOST,
    MIN(CASE WHEN NULLIF(LOADEND,0) > NULLIF(NAVSTART,0) THEN NULLIF(LOADEND,0) - NULLIF(NAVSTART,0) END) / 1000.0 AS MIN_CLICKTORENDER,
    MIN(CASE WHEN NULLIF(RESPONSEEND,0) > NULLIF(REQUESTSTART,0) THEN NULLIF(RESPONSEEND,0) - NULLIF(REQUESTSTART,0) END) / 1000.0 AS MIN_LATENCY,
    MIN(CASE WHEN NULLIF(LOADEND,0) > NULLIF(DOMLOADING,0) THEN NULLIF(LOADEND,0) - NULLIF(DOMLOADING,0) END) / 1000.0 AS MIN_PROCESSING,
    MIN(CASE WHEN NULLIF(FETCHSTART,0) > NULLIF(NAVSTART,0) THEN NULLIF(FETCHSTART,0) - NULLIF(NAVSTART,0) END) / 1000.0 AS MIN_CLIENTPRE,
    MIN(CASE WHEN NULLIF(REQUESTSTART,0) > NULLIF(FETCHSTART,0) THEN NULLIF(REQUESTSTART,0) - NULLIF(FETCHSTART,0) END) / 1000.0 AS MIN_NETWORKSEND,
    MIN(CASE WHEN NULLIF(RESPONSESTART,0) > NULLIF(REQUESTSTART,0) THEN NULLIF(RESPONSESTART,0) - NULLIF(REQUESTSTART,0) END) / 1000.0 AS MIN_SERVER,
    MIN(CASE WHEN NULLIF(RESPONSEEND,0) > NULLIF(RESPONSESTART,0) THEN NULLIF(RESPONSEEND,0) - NULLIF(RESPONSESTART,0) END) / 1000.0 AS MIN_NETWORKREC,
    MIN(CASE WHEN NULLIF(LOADEND,0) > NULLIF(RESPONSEEND,0) THEN NULLIF(LOADEND,0) - NULLIF(RESPONSEEND,0) END) / 1000.0 AS MIN_CLIENTPOST
FROM SAWEB AS T0
INNER JOIN SAWEBSTR AS S0 ON T0.FULLURL = S0.STRINGID
INNER JOIN SAWEBAPPS AS S1 ON S0.STRVALUE LIKE S1.WEB_URL + '%'
WHERE
    DATEDIFF(D, FIRST_USE, <LASTREFRESHTIME>) <= 0
    AND DATEDIFF(D, FIRST_USE, GETUTCDATE()) > 0
GROUP BY
    WGUID,
    WEB_APP_NAME,
    DATEADD(D, DATEDIFF(D, 0, FIRST_USE), 0)